# -*- coding: utf-8 -*-
# Python中默认的编码格式是 ASCII 格式，在没修改编码格式时无法正确打印汉字，所以在读取中文时会报错。

# https://www.cnblogs.com/rainfd/p/slots.html


class Student(object):
    pass

# 即使类没有定义，python的实例也可以定义属性，如：name
# >>> s = Student()
# >>> s.name = 'Michael'            # 动态给实例绑定一个属性
# >>> print(s.name)
# Michae


# 但是，如果我们想要限制实例的属性怎么办？比如，只允许对Student实例添加name和age属性。
# 为了达到限制的目的，Python允许在定义class的时候，
# 定义一个特殊的__slots__变量，来限制该class实例能添加的属性：
# class Student(object):
#     __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称
#
# 然后，我们试试：
#
# >>> s = Student() # 创建新的实例
# >>> s.name = 'Michael' # 绑定属性'name'
# >>> s.age = 25 # 绑定属性'age'
# >>> s.score = 99 # 绑定属性'score'
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# AttributeError: 'Student' object has no attribute 'score'



# https://www.cnblogs.com/rainfd/p/slots.html
